package com.jixiantubu.adapter;

import java.util.ArrayList;
import java.util.List;
import com.example.jixiantubu.R;
import com.jixiantubu.bean.Wo_Data;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class Wo_Adapter extends BaseAdapter {
	// 通过构造器获取数据来源
	List<Wo_Data> list=new ArrayList<Wo_Data>();
	// 接收上下文参数，以便 了解是哪个Activity在调用
		Context context;
		// 用来初始化布局文件，可以吧一个xml布局转换为Android里面的view
		LayoutInflater mInflater;
		
	
	public Wo_Adapter(List<Wo_Data> list, Context context) {
			super();
			this.list = list;
			this.context = context;
			mInflater = LayoutInflater.from(context);
		}
   
	@Override
	public int getCount() {
		// // 数据总量
		return list.size();
	}

	@Override
	public Object getItem(int arg0) {
		// 返回每一行数据
				return list.get(arg0);
	}

	@Override
	public long getItemId(int arg0) {
		// 返回每一行的id，几乎很少用到
				return arg0;
	}

	ViewHolder mHolder=null;
	@Override
	public View getView(int arg0, View arg1, ViewGroup arg2) {
		// 告知每一行的布局样式，同时指定每一行的数据来自哪里
				// 第一个参数指:列表的索引值，从0开始；第二个是每一行的布局，；第三个指的是每一行的父布局，没有则写null
				// 这里，每一行的布局是item.xml
		if(arg1==null){
			arg1 = mInflater.inflate(R.layout.wo_lv1_item, null);
			
				// 初始化每一行的控件
				mHolder=new ViewHolder();
				mHolder.wo_item_imageView=(ImageView) arg1.findViewById(R.id.wo_item_imageView);
				mHolder.wo_item_textView=(TextView) arg1.findViewById(R.id.wo_item_textView);
				
				
				//首次调用getView,创建viewHolder实例，初始化控件，并把这个实例缓存到及界面上
				arg1.setTag(mHolder);
			
			
			}else{
				//不是第一次调用直接取出缓存中的viewHolder即可
				mHolder=(ViewHolder)arg1.getTag();
			}
			
			
			
			// 指定每一行布局对应的数据
			int resId = list.get(arg0).getPicIcId();
			mHolder.wo_item_imageView.setImageResource(resId);

			final String text = list.get(arg0).getText();
			mHolder.wo_item_textView.setText(text);
			
			//监听button单击事件
			
		
			
			return arg1;
	}

	class ViewHolder{
		//做界面缓存工作
		ImageView wo_item_imageView;
		TextView wo_item_textView;
		
	}
}
